<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
    <script>
        // 封装ajax 用
        function myajax(type,url,params){
            // Promise对象内的状态一单发生更改就不会在变
            // 由等待中 更改为成功或失败
            var p = new Promise((res,rej)=>{ //这个函数内的代码会被同步执行
                $.ajax({         // ajax 本身是异步代码
                    url,
                    type,
                    data:{...params},
                    error(err){ //请求失败后调用的函数  得到一个错误对象

                        rej(err); //rej 是异步执行失败后 调用的Promise的函数
                    },
                    success(data){ // 请求成功后调用的函数 得到后端响应的函数
                        res(data); //rej 是异步执行成功后 调用的Promise的函数
                    },
                })

            })
            return p;
        }
        
     var p1 = myajax("get","https://cnodejs.org/api/v1/topics",{page:1})

   // console.log(p1); //
        // new出来的Promise对象的方法 会监听到状态不是等待中后执行
        // p1.then(function(res){
        //     console.log("当前Promise对象的状态是成功才调用",res);
        // }).catch(function(err){
        //     console.log("当前Promise对象的状态是失败才调用",err);
        // }).finally(function(){
        //     console.log("不管结果是成功还是失败都会被调用");
        // })

     
// 
     var p2 = p1.then(function (res) {
        console.log(res);
        return myajax("get","https://cnodejs.org/api/v1/topics",{page:1})
     })
     p2.then(function (res) {
        console.log(res);
     })
    </script>
</body>
</html>